package com.qust.enDecrpytion.proxy.parser;

import lombok.AllArgsConstructor;
import lombok.Data;

import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
import java.lang.reflect.Parameter;
import java.util.ArrayList;

@AllArgsConstructor
@Data
public class DefaultParser implements Parser {

    @Override
    public ParserPOJO parser(Method method, Class<? extends Annotation> a) {
        ParserPOJO parserPOJO = new ParserPOJO();
        parserPOJO.setReturnType(method.isAnnotationPresent(a));
        ArrayList<Integer> arrayList = new ArrayList<>();
        Parameter[] parameters = method.getParameters();
        for (int i = 0; i < parameters.length; i++) {
            if (parameters[i].isAnnotationPresent(a)){
                arrayList.add(i);
            }
        }
        parserPOJO.setParameters(arrayList);
        return parserPOJO;
    }
}
